﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="CheckAop"
    targetNamespace="http://tempuri.org/CheckAop.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/CheckAop.xsd"
    xmlns:mstns="http://tempuri.org/CheckAop.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
    <xs:element name="Aop" type="AopType"></xs:element>
    <xs:complexType name="AopType">
        <xs:sequence>
            <xs:element name="Interceptors" type="AspectOneType"></xs:element>
            <xs:element name="Application" type="ApplicationClassesType"></xs:element>
        </xs:sequence>   
            
    </xs:complexType>

    <xs:complexType name="AspectOneType">
        <xs:sequence>
            <xs:element name="Aspect" minOccurs="1" maxOccurs="20">
                <xs:complexType>
                    <xs:attribute name="id" type="xs:string"/>
                    <xs:attribute name="type" type="xs:string"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ApplicationClassesType">
        <xs:sequence>
            <xs:element name="Class" type="ClassMethodsType" minOccurs="1" maxOccurs="20"></xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ClassMethodsType">
        <xs:sequence>
            <xs:element name="Method" type="MethodAspectsType" minOccurs="1" maxOccurs="20"></xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string"></xs:attribute>
    </xs:complexType>

    <xs:complexType name="MethodAspectsType">
        <xs:sequence>
            <xs:element name="AspectList"  type="AspectTwoType"></xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string"></xs:attribute>
    </xs:complexType>

   


    <xs:complexType name="AspectTwoType">
        <xs:sequence>
            <xs:element name="Aspect" minOccurs="1" maxOccurs="20">
                <xs:complexType>
                    <xs:attribute name="id" type="xs:string"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    
</xs:schema>
